home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / tools / xb / bfd / execbfd.doc < prev   
Text File  |  1996-12-08  |  2KB  |  66 lines

  1.  
  2. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  3.  
  4.     外部関数への差分   exec.bfd
  5.  
  6. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  7.  
  8.  
  9.  
  10.   EXEC.FNC と GRAPH.FNC に当てる差分です。
  11.  
  12.  
  13.  
  14. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  15.  
  16.  
  17.   Oh!X '94年10月号に掲載されている EXEC.FNC はこの差分を当てていないと、
  18. ぺけ-BASIC上で誤動作することがあります。
  19.   理由は、「X-BASICが外部関数を呼び出す時、たまたまレジスタd0-d7
  20. の上位ワードがクリアされている、仕様でない仕様」を使った EXEC.FNC 対応
  21. のプログラムがいくつかある ( SHOCK2.BAS, MCM.BAS ) というものです。ま、
  22. ということで、EXEC.FNC が悪い訳ではないですが、かぶって貰うことにしまし
  23. た。
  24.  
  25.   ソースの変更点は次の通りです。
  26.  
  27. ----    ----    ----    ----    ----    ----    ----    ----    ----
  28. *** old/exec.s    Mon Aug 15 18:53:44 1994
  29. --- exec.s    Wed Jun 07 18:55:58 1995
  30. ***************
  31. *** 138,143 ****
  32. --- 138,151 ----
  33.       move.w    d4,-4*9-2(a5)
  34.   exec_exec:
  35.       lea.l    system_var,a3        システム変数のアドレス
  36. +     moveq    #0,d0
  37. +     moveq    #0,d1
  38. +     moveq    #0,d2
  39. +     moveq    #0,d3
  40. +     moveq    #0,d4
  41. +     moveq    #0,d5
  42. +     moveq    #0,d6
  43. +     moveq    #0,d7
  44.       jsr    (a4)
  45.       lea.l    skip_off(pc),a0
  46.       move.l    d1,6(a0)        d1の内容を戻り値とする
  47. ----    ----    ----    ----    ----    ----    ----    ----    ----
  48.  
  49.  
  50.  
  51. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  52.  
  53.  
  54.   GRAPH.FNC は、X-BASIC 付属の外部関数の中で飛び抜けて大きい存在ですが、
  55. 実はその内 32 KB は paint() 用のバッファで、ただ 0 でクリアされている
  56. だけです。
  57.   そこでそのバッファを .bss セクションに持っていくだけで、GRAPH.FNC は
  58. 3 KB 弱のサイズになります。そのための差分です。
  59.  
  60.   ソースの変更点は記すまでもないですね。
  61.  
  62.  
  63.  
  64. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  65.  
  66.